<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>构建修复测试</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
            background-color: #f5f5f5;
        }
        .container {
            background: white;
            padding: 30px;
            border-radius: 8px;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
        }
        h1 {
            color: #1890ff;
            text-align: center;
            margin-bottom: 30px;
        }
        .test-section {
            margin-bottom: 30px;
            padding: 20px;
            border: 1px solid #e8e8e8;
            border-radius: 6px;
            background-color: #fafafa;
        }
        .test-case {
            margin-bottom: 15px;
            padding: 10px;
            background: white;
            border-radius: 4px;
            border-left: 4px solid #1890ff;
        }
        .success {
            color: #52c41a;
            font-weight: bold;
        }
        .error {
            color: #ff4d4f;
            font-weight: bold;
        }
        .info {
            color: #1890ff;
            font-weight: bold;
        }
        .code {
            background-color: #f6f8fa;
            padding: 10px;
            border-radius: 4px;
            font-family: 'Courier New', monospace;
            margin: 10px 0;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>构建修复测试</h1>
        
        <div class="test-section">
            <h2>修复说明</h2>
            <p>修复了构建后出现的 <code>Uncaught TypeError: Cannot read properties of undefined (reading 'baseURL')</code> 错误。</p>
            
            <h3>问题原因</h3>
            <ul>
                <li>在构建时，环境配置可能返回 <code>undefined</code></li>
                <li><code>getCurrentEnv()</code> 函数可能返回无效的环境类型</li>
                <li><code>getEnvConfig()</code> 函数没有适当的错误处理</li>
            </ul>
            
            <h3>修复方案</h3>
            <ul>
                <li>在 <code>getCurrentEnv()</code> 中添加环境类型验证</li>
                <li>在 <code>getEnvConfig()</code> 中添加配置存在性检查</li>
                <li>在 <code>getApiBaseURL()</code> 和 <code>getTsToken()</code> 中添加 try-catch 错误处理</li>
                <li>提供默认配置作为降级方案</li>
            </ul>
        </div>

        <div class="test-section">
            <h2>修复后的代码</h2>
            
            <div class="test-case">
                <h4>getCurrentEnv() 函数</h4>
                <div class="code">
export const getCurrentEnv = (): EnvType => {
  const env = import.meta.env.VITE_APP_ENV || import.meta.env.MODE || 'dev';
  
  // 确保返回的环境类型是有效的
  const validEnvs: EnvType[] = ['dev', 'staging', 'prod'];
  if (validEnvs.includes(env as EnvType)) {
    return env as EnvType;
  }
  
  // 如果环境类型无效，默认返回 dev
  console.warn(`无效的环境类型: ${env}，使用默认环境: dev`);
  return 'dev';
};
                </div>
            </div>

            <div class="test-case">
                <h4>getEnvConfig() 函数</h4>
                <div class="code">
export const getEnvConfig = (env?: EnvType): EnvConfig => {
  const currentEnv = env || getCurrentEnv();
  const config = ENV_CONFIGS[currentEnv];
  
  // 如果配置不存在，返回默认配置
  if (!config) {
    console.warn(`环境配置不存在: ${currentEnv}，使用默认配置`);
    return ENV_CONFIGS.dev;
  }
  
  return config;
};
                </div>
            </div>

            <div class="test-case">
                <h4>getApiBaseURL() 函数</h4>
                <div class="code">
export const getApiBaseURL = (): string => {
  try {
    return import.meta.env.VITE_API_BASE_URL || getEnvConfig().baseURL;
  } catch (error) {
    console.error('获取API基础URL失败:', error);
    return 'https://bifrost.billionsat.com'; // 默认值
  }
};
                </div>
            </div>
        </div>

        <div class="test-section">
            <h2>测试结果</h2>
            <div class="test-case">
                <p class="success">✓ 构建成功完成</p>
                <p class="info">构建时间: 10.71s</p>
                <p class="info">输出目录: dist/</p>
                <p class="success">✓ 没有出现 baseURL 相关的错误</p>
            </div>
        </div>

        <div class="test-section">
            <h2>验证方法</h2>
            <div class="test-case">
                <h4>1. 构建测试</h4>
                <p>运行 <code>npm run build</code> 命令，确保构建成功完成。</p>
                
                <h4>2. 运行时测试</h4>
                <p>在浏览器中打开构建后的 <code>dist/index.html</code> 文件，检查控制台是否还有 baseURL 相关错误。</p>
                
                <h4>3. 环境变量测试</h4>
                <p>测试不同环境变量下的配置获取是否正常。</p>
            </div>
        </div>

        <div class="test-section">
            <h2>注意事项</h2>
            <div class="test-case">
                <ul>
                    <li>修复后的代码具有更好的容错性，即使在没有环境配置文件的情况下也能正常工作</li>
                    <li>所有配置获取函数都有适当的错误处理和默认值</li>
                    <li>建议在生产环境中创建相应的环境配置文件以确保配置的准确性</li>
                    <li>如果仍有问题，可以检查浏览器控制台的详细错误信息</li>
                </ul>
            </div>
        </div>
    </div>
</body>
</html>
